1. Field of the Invention
The present invention relates generally to systems and methods for file management, and more particularly for differentiating private and shared files within a computer cluster.
2. Discussion of Background Art
Networked computers that share processing tasks are often called clustered computers. Clustering computers allows such computers to function together as a united functional unit for increased fault tolerance, processing power, and ease of system management.
Since clustered computers share computational processing tasks, they also execute many of the same application programs and may share a common storage resource. Two of the most common topologies for shared storage are Network-Attached Storage (NAS) and Storage Area Network (SAN) topologies.
Such common application programs often consume a substantial amount of disk space on their host computers; and, since running multiple instances of such application programs requires that each application program file be copied to each host computer, many file redundancies result across the cluster. Such file duplication also consumes a substantial amount of network bandwidth and administrative effort each time a new cluster computer is brought into the network or a new application program package is installed on each member of the cluster.
One solution, such as used by Hewlett-Packard Company's “Open Software Distributor” product, is to explicitly identify which files can be shared between cluster computers and which should remain private to each instantiation within the cluster prior to application program installation in each host computer. In this approach, a software developer manually and laboriously tags each application file with either a shared or private descriptor.
Another approach, such as used within Red Hat Corporation's “Package Manager” product, is to perform the explicit identification during installation. In this approach, a systems administrator also must manually and laboriously tag each application file with either a shared or private descriptor.
Either approach results in host computer installation images separated into sharable and private file system hierarchies, typically resulting in only one copy of each shared file and multiple copies of each private file.
The effort required of either the software developer or the systems administrator in these approaches, however greatly increases the overhead and debugging associated with each and every cluster application.
Even further, such approaches prevent computer resources from being quickly reallocated among a set of network applications, without either requiring host computers to store on-disk application programs which may never or rarely be used, or by consuming a substantial amount of network bandwidth should copies of the application programs need to be made, as host computers are brought on-line for load balancing or after maintenance.
Furthermore, products such as Hewlett-Packard Company's diskless UNIX employ file management protocols which typically cause the private files to be hidden from normal file access procedures, instead requiring special access methods. These protocols also present many special cases for utilities that access or manage the file system hierarchy.
In response to the concerns discussed above, what is needed is a system and method for differentiating private files from shared files within a computer cluster that overcomes the problems of the prior art.